import axios from "axios";
import router from '@/router';
import { showNotify } from 'vant';
import { useUserStore } from "@/stores";

const baseURL = 'http://app.xngc.net/prod-api'
const userStore = useUserStore();
const instance = axios.create({
  baseURL: baseURL,
  timeout: 1000
});

// 添加请求拦截器
instance.interceptors.request.use(function (config) {
  
  // 在发送请求之前做些什么
  // config.headers.Authorization = ''; 
  if (userStore.token) {
    config.headers.Authorization = `Bearer ${userStore.token}`;
  }
  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

// 添加响应拦截器
instance.interceptors.response.use(function (response) {
  // 对响应数据做点什么
  // 响应成功
  if (response.data.code === 200) {
    return response.data;
  }

  if (response.data.code === 401 || response.data.code === 403) {
    // 清除token
    userStore.removeToken();
    router.push('/login');
  }
  // 响应失败
  return Promise.reject(response.data)
}, function (error) {
  // 对响应错误做点什么

  // 异常的默认情况
  showNotify({ type: 'warning', message: response.data.msg || '服务器异常' });
  return Promise.reject(error);
});

export default instance;